package com.ruoyi.evaluate.infoprojectevaluate.service;

import com.ruoyi.evaluate.infoprojectevaluate.domain.InfoProjectEvaluate;
import com.ruoyi.evaluate.infoprojectevaluate.vo.ProjectEvaluateDetailVo;
import com.ruoyi.evaluate.infoprojectevaluate.vo.ProjectEvaluateExamineVo;

import java.util.List;


/**
 * 项目评价Service接口
 *
 * @author ruoyi
 * @date 2022-02-21
 */
public interface IInfoProjectEvaluateService {
    /**
     * 查询项目评价
     *
     * @param id 项目评价主键
     * @return 项目评价
     */
    public InfoProjectEvaluate selectInfoProjectEvaluateById(Long id);

    /**
     * 查询项目评价列表
     *
     * @param infoProjectEvaluate 项目评价
     * @return 项目评价集合
     */
    public List<InfoProjectEvaluate> selectInfoProjectEvaluateList(InfoProjectEvaluate infoProjectEvaluate);

    /**
     * 新增项目评价
     *
     * @param infoProjectEvaluate 项目评价
     * @return 结果
     */
    public int insertInfoProjectEvaluate(InfoProjectEvaluate infoProjectEvaluate);

    /**
     * 修改项目评价
     *
     * @param infoProjectEvaluate 项目评价
     * @return 结果
     */
    public int updateInfoProjectEvaluate(InfoProjectEvaluate infoProjectEvaluate);

    /**
     * 批量删除项目评价
     *
     * @param ids 需要删除的项目评价主键集合
     * @return 结果
     */
    public int deleteInfoProjectEvaluateByIds(Long[] ids);

    /**
     * 删除项目评价信息
     *
     * @param id 项目评价主键
     * @return 结果
     */
    public int deleteInfoProjectEvaluateById(Long id);

    /**
     * 修改评价审核状态
     * 下达 @ evaluateId 主数据Id examineStatus 审核状态 0 待下达 1 待填报 2 待审核 3 通过 4 已退回
     * <p>
     * 审核 @ evaluateId 主数据Id ； examineStatus 审核状态 0 待下达 1 待填报 2 待审核 3 通过 4 已退回 ；  examineRemarks 总体审核意见
     *
     * @return
     */
    int editExamineEvaluate(ProjectEvaluateExamineVo projectEvaluateExamineVo);

    /**
     * 根据id获取详细信息
     *
     * @param id
     * @return
     */
    ProjectEvaluateDetailVo getProjectEvaluateDetail(Long id);

    /**
     * 预算单位查询自列表
     * @param infoProjectEvaluate
     * @return
     */
    List<InfoProjectEvaluate> selectInfoProjectEvaluateBudgetUnitList(InfoProjectEvaluate infoProjectEvaluate);

    int uploadFiles(InfoProjectEvaluate infoProjectEvaluate);

    List<InfoProjectEvaluate> selectInfoProjectEvaluateByIdss(Long id);

}
